#include "ModelFormation.h"
bool floatEquals(float a, float b, float epsilon)
{
    // 处理特殊情况：如果两个数都是无穷大或都是 NaN
    if (std::isinf(a) || std::isinf(b)) {
        return a == b; // 只有同为 +∞ 或 -∞ 时才相等
    }
    if (std::isnan(a) || std::isnan(b)) {
        return false; // NaN 不等于任何值，包括自身
    }

    // 计算绝对误差并直接比较
    return (a - b) * (a - b) <= epsilon * epsilon;
}
bool IsEqual(float f1, float f2, int absDelta)
{
    int i1, i2;
    i1 = ( f1>0) ? ((int&)f1) : ( (int&) f1 - 0x80000000 );
    i2 = (f2>0) ? ((int&)f2) : ( (int&) f2 - 0x80000000 );
    return ((abs(i1-i2))<absDelta) ? true : false;
}
